//#include <iostream>
//using namespace std;
//
//
//class Date {
//public:
//    int GetMonthDay(int year, int month) {
//        int monthday[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//        int day = monthday[month];
//        if (month == 2 && ((year % 4 == 0 && year % 100 != 0)) || (year % 400 == 0)) {
//            day++;
//        }
//        return day;
//    }
//    Date(int year = 1900, int month = 1, int day = 1) {
//        _year = year;
//        _month = month;
//        _day = day;
//    }
//
//    Date(const Date& d) {
//        _year = d._year;
//        _month = d._month;
//        _day = d._day;
//    }
//    Date& operator=(const Date& d) {
//        _year = d._year;
//        _month = d._month;
//        _day = d._day;
//        return *this;
//    }
//    Date& operator+=(int day) {
//        if (day < 0)return *this -= (-day);
//        _day += day;
//        while (_day > GetMonthDay(_year, _month)) {
//            _day -= GetMonthDay(_year, _month);
//            _month++;
//            if (_month == 13) {
//                _month = 1;
//                _year += 1;
//            }
//
//        }
//        return *this;
//    }
//
//
//    Date operator+(int day) {
//        Date d = *this;
//        d += day;
//        return d;
//
//    }
//    Date operator-(int day) {
//        Date d = *this;
//        d -= day;
//        return d;
//    }
//
//    Date& operator-=(int day) {
//        if (day < 0)return *this += (-day);
//        _day -= day;
//        if (day > 0) {
//            return *this;
//        }
//        else {
//            while (day <= 0) {
//                _month--;
//                if (_month < 1) {
//                    _month = 12;
//                    _year -= 1;
//                }
//                day += GetMonthDay(_year, _month);
//            }
//        }
//        return *this;
//    }
//    bool operator==(const Date& d) {
//        if (_year != d._year)return false;
//        if (_month != d._month)return false;
//        if (_day != d._day)return false;
//        return true;
//    }
//    friend ostream& operator<<(ostream& out, const Date& d) {
//        out << d._year << "-" << d._month << "-" << d._day << endl;
//        return out;
//    }
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//
//
//
//
//int main() {
//    Date d1(2020, 2, 20);
//    d1 += (-10);
//    Date d2 = (d1 + 100);
//    cout << d1;
//    cout << d2;
//    return 0;
//}
